package com.bymboy.emos.wx.db.dao;

import com.bymboy.emos.wx.db.pojo.TbUser;
import org.apache.ibatis.annotations.Mapper;

import java.util.*;

@Mapper
public interface TbUserDao {
    /**
     * 新增用户信息
     *
     * @param map
     */
    void insert(Map map);

    /**
     * 查询是否存在超级管理员
     *
     * @return
     */
    boolean haveRootUserDao();

    /**
     * 根据openId查询id
     *
     * @param openId
     * @return
     */
    Integer searchIdByOpenId(String openId);

    /**
     * 根据userId查询用户权限
     *
     * @param userId
     * @return
     */
    Set<String> searchUserPermissions(int userId);

    /**
     * 根据userId查询用户信息
     *
     * @param userId
     * @return
     */
    TbUser searchById(int userId);

    /**
     * 根据userId查询员工姓名和部门名称
     *
     * @param userId
     * @return
     */
    HashMap<String, String> searchNameAndDept(int userId);

    /**
     * 根据userId查询员工的入职信息
     *
     * @param userId
     * @return
     */
    String searchUserHiredate(int userId);

    /**
     * 根据userId查询员工姓名，部门和头像
     *
     * @param userId
     * @return
     */
    HashMap searchUserSummary(int userId);

    ArrayList<HashMap<String, Object>> searchUserGroupByDept(String keyword);

    /**
     * 查询多个成员的信息
     *
     * @param param
     * @return
     */
    ArrayList<HashMap<String, Object>> searchMembers(List param);

    /**
     * 查询用户的概要信息
     *
     * @param userId
     * @return
     */
    HashMap<String, Object> searchUserInfo(int userId);

    /**
     * 查询部门经理的ID
     *
     * @param id
     * @return
     */
    Integer searchDeptManagerId(int id);

    /**
     * 查询总经理的ID
     *
     * @return
     */
    Integer searchGmId();
}